﻿
using System;  
using System.Collections.Generic;
using System.Collections;    
namespace Model.Tipologias  
{      
    public class TipologiaServiceMock : ITipologiaService{
        public IList<Tipologia> listaTipologias1 = new List<Tipologia>();
        public IList<Tipologia> listaTipologias2 = new List<Tipologia>();
        public IList<Tipologia> listaTipologias3 = new List<Tipologia>();
        public IList<Tipologia> listaTipologias4 = new List<Tipologia>();
        public IList<Tipologia> listaTipologias5 = new List<Tipologia>();
        public IList<Tipologia> listaTipologias6 = new List<Tipologia>();

        public TipologiaServiceMock() { 
            listaTipologias1.Add(new Tipologia("1", "1", "Tipo opção 1", "descrição opção 1"));
            listaTipologias1.Add(new Tipologia("1", "2", "Tipo opção 1.1", "descrição opção 1.1"));
            listaTipologias1.Add(new Tipologia("1", "3", "Tipo opção 1.1.2", "descrição opção 1.1.2"));
            listaTipologias1.Add(new Tipologia("1", "4", "Tipo opção 1.1.2.3", "descrição opção 1.1.2.3"));

            listaTipologias2.Add(new Tipologia("2", "1", "Tipo opção 2", "descrição opção 2"));
            listaTipologias2.Add(new Tipologia("2", "2", "Tipo opção 2.1", "descrição opção 2.1"));
            listaTipologias2.Add(new Tipologia("2", "3", "Tipo opção 2.1.2", "descrição opção 2.1.2"));
            listaTipologias2.Add(new Tipologia("2", "4", "Tipo opção 2.1.2.3", "descrição opção 2.1.2.3"));


            listaTipologias3.Add(new Tipologia("3", "1", "Tipo opção 3", "descrição opção 3"));
            listaTipologias3.Add(new Tipologia("3", "2", "Tipo opção 3.1", "descrição opção 3.1"));
            listaTipologias3.Add(new Tipologia("3", "3", "Tipo opção 3.1.2", "descrição opção 3.1.2"));
            listaTipologias3.Add(new Tipologia("3", "4", "Tipo opção 3.1.2.3", "descrição opção 3.1.2.3"));

            listaTipologias4.Add(new Tipologia("4", "1", "Tipo opção 4", "descrição opção 4"));
            listaTipologias4.Add(new Tipologia("4", "2", "Tipo opção 4.1", "descrição opção 4.1"));
            listaTipologias4.Add(new Tipologia("4", "3", "Tipo opção 4.1.2", "descrição opção 4.1.2"));
            listaTipologias4.Add(new Tipologia("4", "4", "Tipo opção 4.1.2.3", "descrição opção 4.1.2.3"));

            listaTipologias5.Add(new Tipologia("5", "1", "Tipo opção 5", "descrição opção 5"));
            listaTipologias5.Add(new Tipologia("5", "2", "Tipo opção 5.1", "descrição opção 5.1"));

            listaTipologias6.Add(new Tipologia("6", "1", "Tipo opção 6", "descrição opção 6"));
            
        }

        public Tipologia ObterPorChave(String tipo, String chave)         
        {
            if (tipo.Equals("1"))
            {

                foreach (Tipologia tipoAux in listaTipologias1)
                {
                    if (tipoAux.Codigo == chave)
                    {
                        return tipoAux;
                    }

                }
                return null;
            }
            else if (tipo.Equals("2"))
            {
                foreach (Tipologia tipoAux in listaTipologias1)
                {
                    if (tipoAux.Codigo == chave)
                    {
                        return tipoAux;
                    }

                }
                return null;
            }
            else if (tipo.Equals("3"))
            {
                foreach (Tipologia tipoAux in listaTipologias3)
                {
                    if (tipoAux.Codigo == chave)
                    {
                        return tipoAux;
                    }

                }
                return null;
            }
            else if (tipo.Equals("4"))
            {
                foreach (Tipologia tipoAux in listaTipologias4)
                {
                    if (tipoAux.Codigo == chave)
                    {
                        return tipoAux;
                    }

                }
                return null;
            }
            else if (tipo.Equals("5"))
            {
                foreach (Tipologia tipoAux in listaTipologias5)
                {
                    if (tipoAux.Codigo == chave)
                    {
                        return tipoAux;
                    }

                }
                return null;
            }
            else if (tipo.Equals("6"))
            {
                foreach (Tipologia tipoAux in listaTipologias6)
                {
                    if (tipoAux.Codigo == chave)
                    {
                        return tipoAux;
                    }

                }
                return null;
            }
            else { return null; } 
        }
        public IList<Tipologia> ObterTodos()          
        {
            return null;
        }            

        public Tipologia Actualiza(Tipologia tipologia)          
        {
            if (tipologia.Tipo.Equals("1"))
            {               
                foreach (Tipologia tipo in listaTipologias1)             
                {
                    if (tipo.Codigo ==tipologia.Codigo)
                    {
                       listaTipologias1.Remove(tipo);
                       listaTipologias1.Add(tipologia);
                    } 
                }
            }
            else if (tipologia.Tipo.Equals("2"))
            {
                foreach (Tipologia tipo in listaTipologias2)
                {
                    if (tipo.Codigo == tipologia.Codigo)
                    {
                        listaTipologias2.Remove(tipo);
                        listaTipologias2.Add(tipologia);
                    }
                }
            }
            else if (tipologia.Tipo.Equals("3"))
            {
                foreach (Tipologia tipo in listaTipologias3)
                {
                    if (tipo.Codigo == tipologia.Codigo)
                    {
                        listaTipologias3.Remove(tipo);
                        listaTipologias3.Add(tipologia);
                    }
                }
            }
            else if (tipologia.Tipo.Equals("4"))
            {
                foreach (Tipologia tipo in listaTipologias4)
                {
                    if (tipo.Codigo == tipologia.Codigo)
                    {
                        listaTipologias4.Remove(tipo);
                        listaTipologias4.Add(tipologia);
                    }
                }
            }
            else if (tipologia.Tipo.Equals("5"))
            {
                foreach (Tipologia tipo in listaTipologias5)
                {
                    if (tipo.Codigo == tipologia.Codigo)
                    {
                        listaTipologias5.Remove(tipo);
                        listaTipologias5.Add(tipologia);
                    }
                }
            }
            else if (tipologia.Tipo.Equals("6"))
            {
                foreach (Tipologia tipo in listaTipologias6)
                {
                    if (tipo.Codigo == tipologia.Codigo)
                    {
                        listaTipologias6.Remove(tipo);
                        listaTipologias6.Add(tipologia);
                    }
                }
            }

            return tipologia;
        }            
        public Tipologia Insere(Tipologia tipologia)          
        {

            if (tipologia.Tipo.Equals("1"))
            {
                listaTipologias1.Add(tipologia);
            }
            else if (tipologia.Tipo.Equals("2"))
            {
                listaTipologias2.Add(tipologia);
            }
            else if (tipologia.Tipo.Equals("3"))
            {
                listaTipologias3.Add(tipologia);
            }
            else if (tipologia.Tipo.Equals("4"))
            {
                listaTipologias4.Add(tipologia);
            }
            else if (tipologia.Tipo.Equals("5"))
            {
                listaTipologias5.Add(tipologia);
            }
            else if (tipologia.Tipo.Equals("6"))
            {
                listaTipologias6.Add(tipologia);
            }

            return tipologia;
        }            
        public void Apaga(Tipologia tipologia)          
        {
            if (tipologia.Tipo.Equals("1"))
            {
                listaTipologias1.Remove(tipologia);
            }
            else if (tipologia.Tipo.Equals("2"))
            {
                listaTipologias2.Remove(tipologia);
            }
            else if (tipologia.Tipo.Equals("3"))
            {
                listaTipologias3.Remove(tipologia);
            }
            else if (tipologia.Tipo.Equals("4"))
            {
                listaTipologias4.Remove(tipologia);
            }
            else if (tipologia.Tipo.Equals("5"))
            {
                listaTipologias5.Remove(tipologia);
            }
            else if (tipologia.Tipo.Equals("6"))
            {
                listaTipologias6.Remove(tipologia);
            }
        }

        public IList<Tipologia> ObterPorTipo(String tipo)
        {
            if (tipo.Equals("1"))
            {
                return listaTipologias1;
            }
            else if (tipo.Equals("2"))
            {
                return listaTipologias2;
            }
            else if (tipo.Equals("3"))
            {
                return listaTipologias3;
            }
            else if (tipo.Equals("4"))
            {
                return listaTipologias4;
            }
            else if (tipo.Equals("5"))
            {
                return listaTipologias5;
            }
            else if (tipo.Equals("6"))
            {
                return listaTipologias6;
            }
            else
            {
                return null;
            }
        }
      
    }  
}  